Radio frequency identification (RFID) is a technology that incorporates the use of signals in the radio frequency (RF) portion of the electromagnetic spectrum to uniquely identify a Tag. Interrogating transmitters (e.g., interrogators, programmers, or readers) are able to interrogate (read) information from wireless Tags by sending a command to a Tag and receiving a response. Some interrogators (programmers) are able to program Tag memory in addition to reading Tag responses.
It is desirable to program groups of Tags in the most efficient method possible. Time to program is especially important when dealing with thousands of Tags (e.g., Tags on products in a warehouse). Large numbers of Tags should be programmed in the shortest amount of time possible, particularly if Tags are presented in large batches (e.g., a container full products with Tags to be programmed). However, there are limitations with existing technology, specifically in trying to program a large group of Tags in a short amount of time.
Tags can be manufactured with programmable memory to store data (e.g., serial number, model number, and other object characteristics). An interrogator (programmer) can initialize a Tag's memory based on individual application requirements. For example, a unique identification number can be encoded on the Tag by the manufacturer of a given product immediately before a Tag's application to the product packaging. In other situations, more data is programmed into a Tag's memory. For example, a manufacturer of televisions that uses Tags to track televisions through their supply channels may want to also specify the make, model, color, size and/or other details of their televisions into each Tag. With a re-writable Tag, data can be changed, added or deleted at various points in a Tag's life cycle. Unfortunately, writing to a large amount of Tags, especially very low cost passive Tags, may take a relatively long time depending on the method of programming the Tags.
One method to program a Tag is individual programming of each Tag. However, each Tag must be provided with power over a period of time when the memory is being programmed. Programming memory of a passive RFID Tag requires a relatively long programming time interval, during which the reader transmits the power required to program a Tag's memory. The time to program a Tag's memory can be up to ten microseconds or more. In inventory management applications, such as Tag systems used in warehouses, thousands of tagged objects may be within a single reader's RF field, which can be several meters in radius. For example, a single pallet of tagged objects can have more than one hundred cases each containing dozens of tagged objects.
Another method of programming Tags is to broadcast a write command to all Tags within range that programs the same data to all Tags within range of the command. One limitation with broadcasting to all Tags within range is that it is not possible to specify particular Tags and write only to those Tags. With a broadcast write for example, all Tags within range will receive and act on the broadcast command to write. Another limitation with broadcasting to all Tags is the inability to verify the data written to each individual Tag when multiple Tags respond at the completion of the programming. For example, an interrogator issuing a broadcast write command to ten Tags will receive ten responses to the command. Write responses sent at the same time will collide and become indecipherable to an Interrogator. Furthermore, with a broadcast command, an interrogator is unable to program unique data specific to each Tag in a population. A broadcast write, for example, writes the same data to all Tags receiving the command.
Another method to program Tags uses an intent to write flag to tell Tags that a programming command is about to be sent. In order to write data to Tags with this method, Tags must first be programmed with an intent to write, which also can require up to ten microseconds. After the intent to write is saved to memory, a simultaneous write can be initiated. However, because writing the intent to write often takes the same amount of time as programming the Tags with the final data to be written to memory, the process is not very efficient. Furthermore, the intent to write flag needs to be verified before a write can start, and the intent to write flag must be cleared after the write is complete. Therefore, the intent to write flag has inherent inefficiencies that extend the time to program multiple Tags.
It is desirable to write data to wireless Tags efficiently, especially in cases where many need to be programmed in a short amount of time.